home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / bbs_door / bbsc61.zip / BBSCHAT.DOC next >
Text File  |  1996-05-26  |  13KB  |  361 lines

  1.  
  2.                                 BBSCHAT
  3.  
  4.  
  5.                               Version 6.1
  6.  
  7.  
  8.  
  9.                       Written by Matthew Probert
  10.  
  11.  
  12.                      Published by Servile Software
  13.  
  14.  
  15.  
  16.  
  17. NOTE:
  18.  
  19. Two executable files are supplied in the package: BBSCHAT.EXE and 
  20. FSCHAT.EXE. FSCHAT.EXE will make use of ANSI to provide a nice split 
  21. screen environment. BBSCHAT.EXE will work even if the caller does not 
  22. support an ANSI terminal. Throughout this document you may optionally 
  23. replace "bbschat" with "fschat", the programs are otherwise identical. 
  24.  
  25.  
  26.  
  27. DESCRIPTION:
  28.  
  29. BBSChat is a PC BBS chat door system for BBS which generate a DOOR.SYS 
  30. file - such as Remote Access for example. BBSChat is loosely based 
  31. upon the BBS door "SHAMpage" by Rich Waugh of Drawbridge BBS. SHAMpage 
  32. response files may be used with only slight modification by BBSChat. 
  33. (See CONVERTING FROM SHAMPAGE TO BBSCHAT). 
  34.  
  35. Although I have been developing computer conversation systems for a 
  36. couple of years, I decided to clone SHAMpage because although its 
  37. good, I was frustrated by the limitations imposed by it which made it 
  38. too obviously a computer, the logoff screen with its copyright message 
  39. for a start! 
  40.  
  41. There are two ways of looking at BBSChat. Firstly as entertainment. 
  42. Secondly as a system for experimenting with Turing's theory of 
  43. thinking computers. By careful selection of responses and key words, a 
  44. configuration can be developed which appears to be quite intelligent. 
  45. However, BBSChat is still only a slot-and-frame parser! 
  46.  
  47. IMPORTANT: BBSChat will make use of ANSI if the caller has it enabled, 
  48. but if not will work perfectly well in monochrome. No sysop 
  49. adjustments are necessary. 
  50.  
  51.  
  52. IN BRIEF:
  53.  
  54. BBSChat is started from the command line with two required parameters 
  55. and two optional parameters. The first parameter is the name and path 
  56. to your BBS information file; DOOR.SYS. The second parameter is the 
  57. path and name to the configuration file to use for this personality. 
  58. For example: 
  59.  
  60. BBSCHAT C:\RA\DOOR.SYS HARRY.CFG [port][fossil]
  61.  
  62. IMPORTANT! BBSChat will assume that COM1 = 03F8 IRQ 4, COM2 = 02E8 
  63. IRQ3, COM3 = 03E8 IRQ4 and COM4 = 02E8 IRQ 3 These are the standard 
  64. COM port addresses and IRQ levels. 
  65.  
  66. Upon starting, BBSChat may display "Paging <name>" if the paging 
  67. option is active in the configuration file, and there is then a 
  68. randomly generated delay before the conversation commences by 
  69. displaying one of the "opening lines" selected at random. The user and 
  70. the computer then take turns to present typed text to each other, like 
  71. a conversation. BBSChat responds through "replies" contained in the 
  72. configuration file which are selected based upon matching of key words 
  73. and phrases in the users input with those contained in the data file. 
  74.  
  75. Keywords are matched on a first come first served basis. So specific 
  76. keyword phrases should occur at the start of the data file, with more 
  77. general keywords towards the end. 
  78.  
  79. Should the user not make any keyboard entry for 5 minutes, or if the 
  80. user's allocated time expires BBSChat will terminate and return to the 
  81. BBS. 
  82.  
  83. If the caller has ANSI enabled, BBSChat will display the caller's 
  84. prompts and text in yellow, and the computers's in cyan. Otherwise 
  85. both will be in monochrome. BBSChat detects and adjusts for the 
  86. caller's ANSI settings automatically. 
  87.  
  88. The results of the conversation are added to the end of the file 
  89. "chat.log" in the current directory. 
  90.  
  91. LIMITS:
  92.  
  93. Opening lines           50
  94. No match responses      100
  95. Data blocks             300
  96. Aliases                 10 per data block
  97. Responses               20 per data block
  98.  
  99.  
  100.  
  101. VARIABLES:
  102.  
  103. Within the reply text in the data file various variables may be 
  104. included which will be expanded during the conversation. 
  105.  
  106. *DELAY*         Pause for one second
  107. *END*           Force end of conversation, displaying "fed up message".
  108. *USER*          Caller's first name
  109. *CITY*          Caller's city
  110. *PHONE*         Caller's home phone number
  111. *LAST*          Last phrase (thread) output by the computer
  112. *SEC*           The caller's security level
  113. *TIME*          Current time is inserted
  114. *LF*            Line is split, carriage return and line feed inserted
  115. *TIMEOFDAY*     MORNING, AFTERNOON or EVENING inserted as appropriate
  116. *timeofday*     morning, afternoon or evening inserted as appropriate
  117. *Keyword*       The matched keyword is inserted with first letter capitalised
  118. *KEYWORD*       The matched keyword is inserted capitalised
  119. *keyword*       The matched keyword is inserted as it was typed by the user
  120. *Object*        The object is inserted with first letter capitalised
  121. *OBJECT*        The object is inserted capitalised
  122. *object*        The object is inserted as it was typed by the user
  123. *next*          The word following the last matched keyword is inserted as
  124.                 it was typed by the user
  125.  
  126. DATA FILE STRUCTURE:
  127.  
  128. ; optional comment lines
  129. N       Number of opening lines
  130. XXXX    Opening line 1
  131. XXXX    Opening line 2
  132. ; Then the "no match responses"
  133. NOMATCH
  134. N       Number of responses for non-matched words
  135. XXXX    Non-matched response 1
  136. XXXX    Non-matched response 2
  137. ; Finally the data blocks
  138. THREAD  The last phrase the computer output (maximum of 80 characters)
  139. KEYWORD Keyword or phrase
  140. *ALIAS* An alias key word for this section 
  141. N       Number of responses in this section
  142. XXXX    Response 1
  143.  
  144. Please refer to the supplied demonstration file 'HARRY.DAT' for an 
  145. example of the data file in practice. 
  146.  
  147. Replies are what BBSChat will display in response to user entered data 
  148. and are terminated by a carriage-return/line feed in the configuartion 
  149. file. Keywords and aliases MUST be in upper case Any line commening 
  150. with ; is ignored. Variables may be inserted in any response, except 
  151. that: keyword variables may not be used in either opening or non-
  152. matched responses 
  153.  
  154.  
  155. When the user enters some text, BBSChat searches the text for each 
  156. keyword and then associated aliases in turn. Keywords/aliases are 
  157. matched if they occur in the entered text. So it is important to 
  158. include spaces around words you want to match in full, for example: 
  159.  
  160. NO will match with NO, NOW, NOTHING etc
  161. but
  162. " NO " will only match with NO
  163.  
  164. Keywords/aliases may be multiple words, and quote marks are ignored, 
  165. eg: 
  166.  
  167. "WHAT IS THE TIME"
  168.  
  169. When BBSChat matches a keyword/alias it ouputs one of the recorded 
  170. responses at random. That response is then deleted from memory. If 
  171. there are no responses to be made, BBSChat searches for the next 
  172. matching keyword or phrase. When all matching keywords have been 
  173. exhausted a NOMATCH response is selected at random and output. If 
  174. there are no responses left to be made, BBSCHAT terminates the 
  175. conversation. If a match cannot be made with the users input, one of 
  176. the NOMATCH responses is output in the same way. 
  177.  
  178. For example:
  179.  
  180. Consider a simple personality file thus:
  181.  
  182. ;----------------------------------------------------------------------------
  183. ;
  184. ; These are the opening lines which are generated randomly.
  185. ;
  186. ;----------------------------------------------------------------------------
  187. 3
  188. Opener 1
  189. Opener 2
  190. Opener 3
  191. ;----------------------------------------------------------------------------
  192. ;
  193. ; These are lines sent when no keyword match occurs.
  194. ;
  195. ;----------------------------------------------------------------------------
  196. NOMATCH
  197. 5
  198. Random 1
  199. Random 2
  200. Random 3
  201. Random 4
  202. Random 5
  203. ;----------------------------------------------------------------------------
  204.  
  205. LIFE
  206. 3
  207. Life response 1
  208. Life response 2
  209. Life response 3
  210. ;----------------------------------------------------------------------------
  211.  
  212.  
  213. BITCH
  214. 3
  215. Bitch response 1
  216. Bitch response 2
  217. Bitch response 3
  218.  
  219. When the human caller enters the phrase "Life's a bitch", BBSCHAT will search 
  220. and make a match on the word "LIFE" and ouput one of the three life responses 
  221. at random. The second time the caller enters the phrase one of the remaining 
  222. two life responses will be output and so on. When all three life responses 
  223. have been output and the caller enters the same phrase again, BBSCHAT will 
  224. then match on the next rcognisable keyword "BITCH" and will output one of the 
  225. three bitch responses at random.
  226.  
  227. A conversation thread may be achieved by using subsets of keywords linked to 
  228. different threads. Any data block which includes a thread will only be 
  229. searched for a keyword match if the last output from the computer matches that 
  230. data block's thread. To make this easier to use, the data block will be 
  231. accepted if the last phrase the computer output is the same as the thread or 
  232. if the last ouput phrase commenced with the thread or if the data block has a 
  233. null thread. For example; 
  234.  
  235. Computer's ouptut was "Yes I do that often"
  236. This will match with the following data block threads;
  237.         "Yes"
  238.         "Yes I do"
  239.         "Yes I do that often"
  240.  
  241. but it will not match with
  242.         "Yes I am"
  243.  
  244. The user may terminate the session by entering 'BYE', 'QUIT' or 'EXIT' as the 
  245. first text in their input.
  246.  
  247. The conversations made are recorded in a file 'CHAT.LOG' which is appended 
  248. with each new conversation, and resides in the current DOS directory.
  249.  
  250.  
  251. BBS USAGE:
  252.  
  253. If you are using Remote Access as a BBS, you can configure a menu option to 
  254. call BBSChat through a batch file. Use a menu type 7 command. For example in 
  255. the menu "Optional data:" field include the line:
  256.  
  257. *C /C C:\BAT\CHAT.BAT
  258.  
  259. Remote Access will then shell to DOS and execute the batch file "chat.bat" 
  260. which may look like:
  261.  
  262. @echo off
  263. cd \doors\bbschat
  264. bbschat c:\ra\door.sys sysop.cfg
  265. cd \ra
  266. exit
  267.  
  268.  
  269. It is not usually necessary to swap Remote Access out of memory to run 
  270. BBSChat.
  271.  
  272. BEFORE YOU GO:
  273.  
  274. A consideration for you sysops, is however, that BBSChat does not identify 
  275. itself as a computer. You may like to add a displayed text file after the user 
  276. exits from BBSChat to reassure them that it was just a joke, or whatever. 
  277. Otherwise, if your BBSChat configuration is rude or offensive, the caller may 
  278. actually think it was you being so rude to them! Which has happened!!!
  279.  
  280. LOCAL MODE:
  281.  
  282. To run BBSChat locally, change the COM port definition to COM0 in door.sys. 
  283. See the enclosed "demo.bat" and "door.sys" files for an example. 
  284.  
  285.  
  286.  
  287. CONFIGURATION FILE:
  288.  
  289. BBSChat requires a configuration file. This is an ascii text file comprised of 
  290. several lines as follows:
  291.  
  292. Format Description              Example
  293. ---------------------------------------
  294. nnnn   Paging                   1
  295. xxxx   Data file name           Sysop.dat
  296. xxxx   Computer's name          Sysop
  297. nnnn   Delay on typing          200
  298. xxxx   Termination message      See you later then.
  299. xxxx   Fed up message           I've had enough of this, I'm off to the pub
  300. xxxx   Optional paging message  Oi Sysop, you out there?
  301. nnnn   Screen divider           0
  302. xxxx   Lower left title         My Chat
  303. xxxx   Lower Centre title       Now in chat mode
  304. xxxx   Lower Right title        (c) 1995 XYZ Software
  305. nnnn   Dividing bar colour      7
  306. nnnn   Dividing text colour     5
  307. nnnn   Upper text colour        7
  308. nnnn   Lower text colour        7
  309. nnnn   Digit colour             7
  310. nnnn   Punctuation colour       7
  311.  
  312. Please note: The "termination" and "fed up" messages may not be longer than 80 
  313. characters. If they are they may crash the computer.
  314. The paging message is optional, if not supplied the default "Paging 
  315. <computer's name> message will be displayed, otherwise the text in the paging 
  316. message will be displayed. This may be a maximum length of 80 characters, and 
  317. must end in a carriage-return.   The screen divider is a single number 
  318. detremining the FSCHAT screen dividing characters:
  319.         0       Solid bar
  320.         1       Double line
  321.  
  322.  
  323.  
  324. CONVERTING FROM SHAMPAGE TO BBSCHAT:
  325.  
  326. As a mark of respect to SHAMpage, I have deliberately immitated it where ever 
  327. possible. However, there are differences between SHAMpage and BBSChat. If you 
  328. intend to convert an existing SHAMpage configuration file into one compatible 
  329. with BBSChat you should note the following differences:
  330.  
  331. 1) BBSChat does not use EXITMSGs
  332.  
  333. 2) BBSChat does not recognise all the SHAMpage variables. If BBSChat displays 
  334.    *PASSWORD* for example, it's because it doesn't recognise it as a variable!
  335.  
  336. 3) BBSChat matches keywords and aliases in the order they occur within the 
  337.    data file. This allows you to include keywords which are subsets of other 
  338.    keywords or aliases so long as they occur later in the data file. Remember 
  339.    that unlike Shampage, BBSChat includes a thread in the data block. So you 
  340.    must include an additional line in the .DAT file immediately before the 
  341.    keyword.
  342.  
  343. 4) BBSChat supports some variables which SHAMpage V3.55 doesn't. Namely; 
  344.    *CITY*, *END*, *DELAY*, *OBJECT* and *NEXT*.
  345.  
  346.  
  347.  
  348. This is a Servile Software AI Laboratory product.
  349.  
  350. All enquiries to:
  351.  
  352.         Matthew Probert
  353.         Servile Software
  354.         5 Longcroft Close
  355.         Basingstoke
  356.         Hampshire
  357.         RG21 8XG
  358.         England
  359.  
  360.         Telephone 01256 414072
  361.